#include <unistd.h>
#include <iostream>
#include <fcntl.h>

// 该函数用来将fd设置成非阻塞
void SetNonBlock(int fd)
{
    int f1 = ::fcntl(fd, F_GETFL); // 获取老的标志位
    if (f1 < 0)
    {
        return;
    }
    fcntl(fd, F_SETFL, f1 | O_NONBLOCK); // 将老的标志位或上非阻塞
}